package com.zut.blocks.service.grade;

import com.zut.blocks.base.common.request.GradeRequest;
import com.zut.blocks.base.domain.Grade;
import com.zut.blocks.base.service.GenericService;
import com.zut.blocks.service.grade.vo.FinalGrade;
import org.springframework.data.domain.Page;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface GradeService extends GenericService<Grade, Integer> {

    /**
     * get all students
     * @return
     */
    List<Grade> findAll();

    /**
     * get a student's information by Id
     * @param gradeRequest
     * @return
     */
    Page<Grade> getGradeById(GradeRequest gradeRequest);

    /**
     * calc student final grade
     * @param request
     * @return
     */
    List<FinalGrade> getFinalGradeByCourseId(GradeRequest request);

    Integer upload(MultipartFile file, Integer courseId);
}
